package InterfaceGraphique;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

/**
 * Classe codant la fenetre de visualisation des infos d'un sommet
 * @author bruno
 *
 */
public class FenetreInfoSommet extends Fenetre {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * liste déroulante des sommets
	 */
	JComboBox<String> sommet = new JComboBox<String>(Test.g.getTabSommet());
	
	/**
	 * infos du sommet
	 */
	JLabel label = new JLabel(Test.g.getListSommet().get(0).toString());
	
	/**
	 * bouton de retour
	 */
	JButton retour = new JButton("Annuler");

	public FenetreInfoSommet(){
		Test.disable();
		
		sommet.addActionListener(new MyListener());
		
		this.setTitle("Info sommet");
		this.setSize(1000, 200);
		this.setResizable(true);
		this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		this.setVisible(true);
		this.setLocationRelativeTo(null);
		
		retour.addActionListener(this);
		
		JPanel main_container = new JPanel();
		main_container.setLayout(new GridBagLayout());
		
		GridBagConstraints gbc = new GridBagConstraints();
		
		//on précise le placement du premier composant sur le container
		gbc.gridx = 0;
		gbc.gridy = 0;
		//on précise la taille des composants par rapport à la grille 
		gbc.gridheight = 1;
		gbc.gridwidth = 1;
		gbc.ipady = 10;
		gbc.anchor = GridBagConstraints.WEST;
		
		JLabel label_for_name = new JLabel("Saisir le nom du sommet :");
		sommet.setPreferredSize(new Dimension(100, 25));
		main_container.add(label_for_name, gbc);
		gbc.gridy = 1;
		main_container.add(sommet, gbc);

		gbc.gridy = 2;
		main_container.add(label, gbc);
		
		gbc.gridy = 3;
		main_container.add(retour, gbc);
		
		this.setContentPane(main_container);
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == retour){
			Test.reEnable();
			this.dispose();
		}
	}
	
	/**
	 * classe interne permettant de générer dynamiquement la liste d'admin a chaque fois 
	 * qu'on selectionne
	 * une autre page
	 * @author bruno
	 *
	 */
	class MyListener implements ActionListener{
		
		@Override
		public void actionPerformed(ActionEvent e){
			String s = Test.g.infoSommet((String) sommet.getSelectedItem());
			label.setText(s);
		}	
		
	}

}
